int search(int* nums, int numsSize, int target) {
    if (nums == NULL || numsSize == 0)
        return -1;
    int left = 0;
    int right = numsSize - 1;
    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (target == nums[mid]) return mid;

        if (nums[left] <= nums[mid]) { // 左边有序
            if (target >= nums[left] && target < nums[mid]) {
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        } else { // 右边有序
            if (target > nums[mid] && target <= nums[right]) {
                left = mid + 1;
            } else {
                right = mid- 1;
            }
        }
    }
    return -1;
}